Filtering in the transformed domain

ABSTRACT

A method for processing a signal in the form of consecutive sample blocks, the method comprising filtering in a transformed domain of sub-bands, and particularly equalization processing, applied to a current block in the transformed domain, and filtering-adjustment processing that is applied in the transformed domain to at least one block adjacent to the current block.

The invention relates to the filtering of digital data, particularly the filtering of audio digital data. The use of low bit-rate audio encoding requires filtering in the decoding post-processing, which can occur in various forms:

-   -   customizing the listening experience by changing the         characteristic sound of the recording, in particular by         attenuating or amplifying certain bands of the audio spectrum,     -   applying filtering in the audio encoding as well, where         configuration tools allow enhancing the audio signal received.

For example, techniques such as Spectral Band Replication (SBR) or Parametric Stereo (PS) (ISO/IEC 14496-3 standard, MPEG-4 Audio standard) respectively allow reconstructing higher frequency sounds from lower frequencies and stereo sound from a mono signal. MPEG Surround MPS (ISO/IEC 23003-1 standard, MPEG-D standard) extends the approach of PS processing to the reconstruction of more than two audio channels.

In these techniques, the missing portions of the sound are reconstructed by signal copying and filtering operations.

For example, SBR processing modulates the lower frequency areas to higher frequencies and adjusts the frequency energy of the signal. This adjustment allows obtaining a signal after decoding that is similar to the original signal (signal before encoding).

PS processing recreates, from a mono signal, two composite signals in which the frequency energy is adjusted, again in order to render a decoded signal resembling the original reference signal. MPS processing extends this principle to the generation of N signals from M transmitted audio channels (where N≧M).

Low bit-rate audio encoders using transforms according to MPEG standards such as MP3, AAC or USAC, or according to ITU-T standards such as G.722.1, G.719, G.718, prefer the use of critically sampled transforms. Critical sampling is an important property in low bit-rate encoding. In effect, in order to maintain transmission efficiency, there should not be more transformed samples transmitted than there were in the time domain.

For this reason, in current low bit-rate encoders, only critically sampled transforms are employed. These are, for example, MDCT (Modified Discrete Cosine Transform) transforms which are typically transforms with real number coefficients.

These transforms are unsuitable for filtering without artifacts, because they result in a distortion known as “aliasing”.

To achieve adequate filtering, two families of techniques can be applied:

-   -   1. those consisting of performing the inverse transformation,         then applying a convolution-type filtering;     -   2. those consisting of using a transformation adapted for         filtering (for example a short-term Fourier transform or another         transformation for complex values, for example complex filters         such as PQMF for Pseudo Quadrature Mirror Filters), which is not         critically sampled, in order to be able to perform this         filtering operation without artifacts: the filtering then         consists of a simple multiplication by transform coefficient         (equalization). However, the inverse transformation of the         encoding transformation must be performed, then the samples must         be transposed to the domain of complex values; after         equalization, the samples are restored by inverse complex         transformation in the time domain. Three transformations are         therefore necessary.

To carry out the first approach (point 1 above), a convolution-type filtering must be performed after inverse transformation of the encoding, which is costly in terms of computation and is not very versatile (little flexibility in making changes to the implemented filter).

The second approach (point 2) is much more versatile, and it is easy to change the multiplier coefficients (the equalization function). On the other hand, the number of transformations to be applied leads to significant complexity.

The invention aims to improve the situation.

For this purpose, it proposes a method for processing a signal in the form of consecutive blocks of samples, comprising filtering in a transformed domain of sub-bands. In the invention, the method comprises:

-   -   equalization processing applied to a current block in the         transformed domain, and     -   filtering-adjustment processing applied in the transformed         domain to at least one block adjacent to the current block.

“Block” is understood to mean any succession of samples, such as a frame, or a sub-frame in certain types of signal formats.

Thus the invention proposes an improved filtering in the transformed domain. This approach is advantageously not very complex because the processing remains within the domain of the initial transform. One resulting advantage is that it limits audible aliasing components while accurately providing the filtering characteristic initially desired.

In one embodiment, the filtering-adjustment processing is carried out by a matrix applied to said at least one block adjacent to the current block, said matrix comprising upper and lower diagonals that are identical aside from the sign.

In one embodiment, the method then comprises a prior step of optimizing the equalization and filtering-adjustment parameters, by estimating the aliasing resulting from the equalization.

The aliasing is preferably estimated in a domain obtained from an inverse transform of the domain of sub-bands (for example in the time domain).

This estimate in the direct domain more effectively limits the audible distortion caused by aliasing, and therefore provides a more refined optimization of the filtering-adjustment parameters.

Advantageously, the equalization and filtering adjustment in the transformed domain comprise:

-   -   equalization processing applied to a current block,     -   filtering-adjustment processing applied to at least one block         temporally preceding the current block, and     -   filtering-adjustment processing applied to at least one block         temporally following the current block.

Thus, this embodiment proposes relying on both the block preceding and the block immediately following the current block.

In one embodiment, the equalization and filtering-adjustment include the application of a matrix system comprising:

-   -   a first matrix applied to a signal vector representing the         current block,     -   a second matrix applied to a signal vector representing the         preceding block, and     -   a third matrix applied to a signal vector representing the         following block.

Advantageously, the third matrix is the transpose of the second matrix.

The invention therefore proposes, in particular, symmetrical structures (for example by filtering in a cosine-modulated filter bank at any critical sampling) which allow obtaining easily performed functions.

In one embodiment, prior to the equalization and adjustment processing and therefore prior to the application of the matrices, the blocks are transformed in the domain of the sub-bands by at least one modulated transform, for example an MDCT transform.

In one sophisticated embodiment, the transform can be a complex-valued modulated transform (for example MCLT or PQMF).

In one embodiment of the invention, in which the current and adjacent blocks are represented by signal vectors, the equalization and filtering-adjustment include the application of a matrix system comprising at least:

-   -   a first matrix (T₀) applied to the signal vector of the current         block, and     -   a second matrix (T₁) applied to the signal vector of the         adjacent block.

The first matrix (T₀) applied to the signal vector of the current block comprises as the only non-zero elements a succession of identical elements A, in the diagonal of the matrix, followed by an element A-B for a given sub-band and by an element B for the sub-band which follows the given sub-band, and the second matrix (T₁) applied to the signal vector of the adjacent block comprises as the only non-zero elements at least two elements of identical absolute value and of opposite signs, arranged in the diagonal of the matrix, respectively for the given sub-band and for the sub-band which follows the given sub-band.

More generally, the invention allows implementing structures for correcting low-pass, band-pass, or other filters, in the domain of real or complex values, using simple functions as described below.

In one embodiment, the filtering comprises a cutoff component for beyond a sub-band corresponding to said given sub-band.

Advantageously, in the case where a third matrix is involved, the second and third matrices comprise a number of non-zero elements which is a function of the chosen degree of optimization of the filtering-adjustment parameters, minimizing the estimated aliasing.

The invention thus proposes computationally efficient structures with a limited number of coefficients to be added. Better still, it is possible to choose the number of matrix coefficients that must be managed as a function of the desired complexity, or as a function of a compromise between complexity and aliasing limitation.

In one embodiment which allows greatly reducing (even virtually eliminating) the distortion related to aliasing, for a low-pass filtering the first matrix is expressed in the form:

${T_{0} = \begin{pmatrix} 1 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 1 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 1 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {1 - a_{0}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{0} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}},$

the coefficient 1-a₀ being applied for the given sub-band, the second matrix is expressed in the form:

${T_{1} = \begin{pmatrix} 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{5} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & a_{3} & 0 & {- a_{4}} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & {- a_{3}} & {- a_{1}} & {- a_{2}} & 0 & a_{5} & \ldots & 0 \\ 0 & \ldots & {- a_{5}} & 0 & a_{2} & a_{1} & a_{3} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & a_{4} & 0 & {- a_{3}} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {- a_{5}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}},$

the coefficient −a₁ of the diagonal being applied for the given sub-band, and the third matrix is the transpose of the second matrix.

In these expressions, the coefficients a₀, a₁, a_(z), a₃, a₄ and a₅ are positive real numbers, with at least the real number a₁ being non-zero.

In the case of a linear combination of matrices as described below, the term a₀ can be zero for a given matrix, which can be compensated for by another matrix combined with this given matrix.

If all these coefficients are non-zero for a given matrix, an optimal minimization of the aliasing distortion for a low-pass filter gives:

a₀=0.2548 a₁=0.1249 a₂=0.0812 a₃=0.0409 a₄=0.0192 a₅=0.0132

In one embodiment where the filtering to be corrected results from a linear combination of multiple filterings, the matrix correction system of the invention comprises at least:

-   -   a corresponding linear combination of first matrices, applied to         the signal vector of the current block,     -   a linear combination of second matrices, applied to the signal         vector of the preceding block, and     -   a linear combination of third matrices, respective transposes of         the second matrices, applied to the signal vector of the         following block.

Thus, the approach of the invention can be generalized to any filtering and equalization functions, using filtering-adjustment coefficients adapted from an analysis of the distortion to be corrected.

The invention also concerns a computer program comprising instructions for implementing the above method when this program is executed by a processor. An example flowchart of the general algorithm of such a program is described below in reference to FIG. 13.

The invention also relates to a device for processing a signal in the form of consecutive blocks of samples, comprising means for filtering in a transformed domain of sub-bands. These means additionally apply:

-   -   equalization processing to a current block in the transformed         domain, and     -   filtering-adjustment processing, in the transformed domain, to         at least one block adjacent to the current block.

One example embodiment of such a device is described below in reference to FIG. 14.

Other features and advantages of the invention will become apparent upon reviewing the following detailed description and the attached drawings, in which:

FIG. 1A schematically illustrates a first processing which carries out a filtering S(z), then a direct transformation followed by an inverse transformation,

FIG. 1B schematically illustrates a second processing performing a direct transform, followed by processing in the desired sub-bands S_(sb)(z), and finally performing the inverse transform, this figure and FIG. 1A distinguishing two approaches of polyphase systems,

FIG. 2 schematically illustrates the multiplication of a scalar in each sub-band of the transformed domain in order to represent any filtering,

FIG. 3 illustrates the general form of a linear filtering (low-pass filter) applied in matrix form in the transformed domain,

FIG. 4 shows the general form of the frequencies for the filter of FIG. 3,

FIG. 5 represents the distortion (ordinates), reduced by optimization of the equalization parameter a₀ (abscissas), in an embodiment without filtering adjustment,

FIG. 6 represents the frequency characteristics of the filter resulting from the equalization optimization illustrated in FIG. 5,

FIG. 7 represents the frequency characteristics of the filter resulting from the equalization and filtering-adjustment optimization,

FIG. 8 represents the reduction in the distortion observed due to aliasing (ordinates) as a function of the number of coefficients involved in the equalization and filtering-adjustment (abscissas),

FIG. 9 illustrates the function of filtering, equalization, and filtering adjustment, performed using a set of coefficients a₀, a₁, a₂, a₃, a₄, a₅, in the case of a band-pass filter,

FIG. 10 illustrates the case of a complex-valued modulated transform (MCLT type),

FIG. 11 compares the distortion reduction observed due to aliasing (ordinates) as a function of the number of coefficients involved in the equalization and filtering adjustment (abscissas), for a real-valued transform (MDCT, solid line) and for a complex-valued transform (MCLT, dotted lines), for a low-pass filtering,

FIG. 12 compares the distortion reduction observed due to aliasing (ordinates) as a function of the number of coefficients involved in the equalization and filtering adjustment (abscissas) for a real-valued transform (MDCT, solid line) and for a complex-valued transform (MCLT, dotted lines), for a band-pass filtering,

FIG. 13 summarizes the steps of a method according to the invention, in an example embodiment, and

FIG. 14 schematically illustrates a device for implementing the invention, in an example embodiment.

A few principles of polyphase systems are summarized below. The particular aim here is to measure the effect of a function filtering in sub-bands (transformed domain) in the time domain (after inverse transformation).

For this purpose, we attempt to establish a relation between two processing steps:

-   -   a first processing (a) which performs a filtering S(z), then         performs a direct transformation followed by an inverse         transformation,     -   a second processing (b) which carries out a direct         transformation, followed by a processing in desired sub-bands         S_(sb)(z), and lastly performing the inverse transformation.

A filtering expression S(z) is then extracted.

The two processing steps are respectively illustrated in FIGS. 1A and 1B.

To simplify the identification of these processing steps, we write the operations performed in the polyphase domain. This is a conventional approach for simplifying the resolution of systems including transforms with sampling.

The analysis filter bank (or the direct transform) is expressed by its polyphase matrix of order M, E(z).

The synthesis filter bank (or inverse transform) is expressed by its polyphase matrix of order M, R(z).

M represents the number of transform coefficients (meaning the number of frequency coefficients obtained by the transform).

The polyphase decomposition of the modulated transforms, including the MDCT transform, is expressed by:

${H_{k}(z)} = {\sum\limits_{l = 0}^{M - 1}\; {z^{- 1}{E_{k,l}\left( z^{M} \right)}}}$

The polyphase components of the transforms are written as follows, based on the impulse responses of the analysis filters h_(a,k,n) for sub-band k and coefficient n. This example is limited, without limiting its generality however, to a transform in which the impulse responses have a length 2M, such as the MDCT transform.

$\begin{matrix} {{E(z)} = \begin{bmatrix} {E_{0,0}(z)} & {E_{0,1}(z)} & \ldots & {E_{0,{M - 1}}(z)} \\ {E_{1,0}(z)} & {E_{1,1}(z)} & \ldots & {E_{1,{M - 1}}(z)} \\ \vdots & \vdots & \ddots & \vdots \\ {E_{0,{M - 1}}(z)} & {E_{1,{M - 1}}(z)} & \ldots & {E_{{M - 1},{M - 1}}(z)} \end{bmatrix}} \\ {= \begin{bmatrix} {h_{a,0,0} + {z^{- 1}h_{a,0,M}}} & {h_{a,0,1} + {z^{- 1}h_{a,0,{M + 1}}}} & \ldots & {h_{a,0,{M - 1}} + {z^{- 1}h_{a,0,{{2M} - 1}}}} \\ {h_{a,1,0} + {z^{- 1}h_{a,1,M}}} & {h_{a,1,1} + {z^{- 1}h_{a,1,{M + 1}}}} & \ldots & {h_{a,1,{M - 1}} + {z^{- 1}h_{a,1,{{2M} - 1}}}} \\ \vdots & \vdots & \ddots & \vdots \\ {h_{a,{M - 1},0} + {z^{- 1}h_{a,{M - 1},M}}} & {h_{{M - 1},1} + {z^{- 1}h_{{M - 1},{M + 1}}}} & \ldots & {h_{a,{M - 1},{M - 1}} + {z^{- 1}h_{a,{M - 1},{{2M} - 1}}}} \end{bmatrix}} \\ {= {\begin{bmatrix} h_{a,0,0} & h_{a,0,1} & \ldots & h_{a,0,{M - 1}} \\ h_{a,1,0} & h_{a,1,1} & \ldots & h_{a,1,{M - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ h_{a,{M - 1},0} & h_{a,{M - 1},1} & \ldots & h_{a,{M - 1},{M - 1}} \end{bmatrix} +}} \\ {{z^{- 1}\begin{bmatrix} h_{a,0,M} & h_{a,0,{M + 1}} & \ldots & h_{a,0,{{2M} - 1}} \\ h_{a,1,M} & h_{a,1,{M + 1}} & \ldots & h_{a,1,{{2M} - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ h_{a,{M - 1},M} & h_{a,{M - 1},{M + 1}} & \ldots & h_{a,{M - 1},{{2M} - 1}} \end{bmatrix}}} \end{matrix}$

Then the modulations c_(k,n) and the analysis prototype filter h_(a,n) are introduced for a modulated transform, where:

${c_{k,n} = {\cos \left( {\frac{\pi}{M}\left( {n + \frac{1 + M}{2}} \right)\left( {k + \frac{1}{2}} \right)} \right)}},{where}$ 0 ≤ n < 2M, 0 ≤ k < M

and h_(a,n) is an analysis prototype filter (or window) containing 2M samples, some of them possibly being zero (particularly those with the highest indices).

${E(z)} = {{\begin{bmatrix} c_{0,0} & c_{0,1} & \ldots & c_{0,{M - 1}} \\ c_{1,0} & c_{1,1} & \ldots & c_{1,{M - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ c_{{M - 1},0} & c_{{M - 1},1} & \ldots & c_{{M - 1},{M - 1}} \end{bmatrix}\begin{bmatrix} h_{a,0} & 0 & \ldots & 0 \\ 0 & h_{a,1} & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & h_{a,{M - 1}} \end{bmatrix}} + {{z^{- 1}\begin{bmatrix} c_{0,M} & c_{0,{M + 1}} & \ldots & c_{0,{{2M} - 1}} \\ c_{1,M} & c_{1,{M + 1}} & \ldots & c_{1,{{2M} - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ c_{{M - 1},M} & c_{{M - 1},{M + 1}} & \ldots & c_{{M - 1},{{2M} - 1}} \end{bmatrix}}\begin{bmatrix} h_{a,M} & 0 & \ldots & 0 \\ 0 & h_{a,{M + 1}} & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & h_{a,{{2M} - 1}} \end{bmatrix}}}$

By introducing the notations:

$C_{0} = \begin{bmatrix} c_{0,0} & c_{0,1} & \ldots & c_{0,{M - 1}} \\ c_{1,0} & c_{1,1} & \ldots & c_{1,{M - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ c_{{M - 1},0} & c_{{M - 1},1} & \ldots & c_{{M - 1},{M - 1}} \end{bmatrix}$ $C_{M} = \begin{bmatrix} c_{0,M} & c_{0,{M + 1}} & \ldots & c_{0,{{2M} - 1}} \\ c_{1,M} & c_{1,{M + 1}} & \ldots & c_{1,{{2M} - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ c_{{M - 1},M} & c_{{M - 1},{M + 1}} & \ldots & c_{{M - 1},{{2M} - 1}} \end{bmatrix}$ $h_{a,0} = \begin{bmatrix} h_{a,0} & 0 & \ldots & 0 \\ 0 & h_{a,1} & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & h_{a,{M - 1}} \end{bmatrix}$ ${h_{a,1} = \begin{bmatrix} h_{a,M} & 0 & \ldots & 0 \\ 0 & h_{a,{M + 1}} & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & h_{a,{{2M} - 1}} \end{bmatrix}},$

we obtain:

E(z)=C ₀ h _(a,0) +z ⁻¹ C ₁ h _(a,1)

For synthesis, reciprocally we obtain:

R(z)=h _(s,0) C′ ₁ +z ⁻¹ h _(s,1) C′ ₀

Below, the symbol ′ indicates the transposition of a matrix.

The filter h_(s,n) here is a prototype filter (called the synthesis window) containing 2M samples, some of which may possibly be zero (particularly those with the lowest indices).

For the case of the MDCT transform, the reconstruction is perfect to the extent that the modulations and the analysis and synthesis filters meet the following conditions:

$\begin{matrix} {{P(z)} = {{R(z)}{E(z)}}} \\ {= {\left( {{h_{s,0}C_{1}^{\prime}} + {z^{- 1}h_{s,1}C_{0}^{\prime}}} \right)\left( {{C_{0}h_{a,0}} + {z^{- 1}C_{1}h_{a,1}}} \right)}} \\ {= {{h_{s,0}C_{1}^{\prime}C_{0}h_{a,0}} + {z^{- 1}\left\lbrack {{h_{s,0}C_{1}^{\prime}C_{1}h_{a,1}} + {h_{s,1}C_{0}^{\prime}C_{0}h_{a,0}}} \right\rbrack} +}} \\ {{z^{- 2}h_{s,1}C_{0}^{\prime}C_{1}h_{a,1}}} \end{matrix}$

implying the two conditions:

C′ ₁ C ₀ =C′ ₀ C ₁=0

and

h _(s,0) C′ ₁ C ₁ h _(a,1) +h _(s,1) C′ ₀ C ₀ h _(a,0) =I _(M)(carefully choosing h _(a,n) and h _(s,n)),

I_(M) being the identity matrix of size M×M. Thus:

P(z)=R(z)E(z)=z ⁻¹ I _(m)

The MDCT transform is therefore a perfect reconstruction (at the cost of a delay of one frame, i.e. M samples, in the case of a signal containing a succession of frames of M samples each).

A corollary to the complete reconstruction of the MDCT transform implies that:

R ⁻¹(z)R(z)E(z)=z ⁻¹ R ⁻¹(z)

This reveals a useful property for the following:

R ⁻¹(z)=zE(z)  (0.1)

Next we will describe the influence, in terms of aliasing, of a filtering equalization operation in the transformed domain. This influence is analyzed in the time domain after inverse transform.

It begins with processing in sub-bands S_(sb) (z) and it attempts to estimate the resulting filtering function S (z). As the processing is expressed in the polyphase domain, the notations S_(sb) (z) and S (z) concern filter matrices. It should be noted that S(z) does not necessarily represent a linear filter that can be implemented as a convolution.

Starting with identifying the processing steps (a) and (b):

Y(z)=R(z)S _(sb)(z)E(z)X(z)=S(z)R(z)E(z)X(z)

R(z)S _(sb)(z)=S(z)R(z)

and then multiplying the two sides by R⁻¹(z):

R(z)S _(sb)(z)R ⁻¹(z)=S(z)R(z)R ⁻¹(z)

we obtain (where R⁻¹(z)=zE (z), as shown above):

R(z)S _(sb)(z)zE(z)=S(z)

s(z)=zR(z)S _(sb)(z)E(z)  (0.2)

By replacing R and E with their expression, which depends on the filter bank used, the matrix S(z) can then be calculated.

The elements of this matrix are indexed as follows:

${S(z)} = \begin{bmatrix} {S_{0,0}(z)} & {S_{0,1}(z)} & {S_{0,2}(z)} & \ldots & {S_{0,{M - 2}}(z)} & {S_{0,{M - 1}}(z)} \\ {S_{1,0}(z)} & {S_{1,1}(z)} & {S_{1,2}(z)} & \ldots & {S_{1,{M - 2}}(z)} & {S_{1,{M - 1}}(z)} \\ {S_{2,0}(z)} & {S_{2,1}(z)} & {S_{2,2}(z)} & \ldots & {S_{2,{M - 2}}(z)} & {S_{2,{M - 1}}(z)} \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ {S_{{M - 2},0}(z)} & {S_{{M - 2},1}(z)} & {S_{{M - 2},2}(z)} & \ldots & {S_{{M - 2},{M - 2}}(z)} & {S_{{M - 2},{M - 1}}(z)} \\ {S_{{M - 1},0}(z)} & {S_{{M - 1},1}(z)} & {S_{{M - 1},2}(z)} & \ldots & {S_{{M - 1},{M - 2}}(z)} & {S_{{M - 1},{M - 1}}(z)} \end{bmatrix}$

This matrix decomposes into:

S(z)=S _(lin)(z)+S _(alias)(z), where:

-   -   S_(lin) (z) is a filtering matrix in the following circular form         (guaranteeing the fact that it corresponds to a linear filter in         the form of a convolution):

${S_{lin}(z)} = \begin{bmatrix} {S_{{lin},0}(z)} & {S_{{lin},1}(z)} & {S_{{lin},2}(z)} & \; & \ldots & {S_{{lin},{M - 1}}(z)} \\ {z^{- 1}{S_{{lin},{M - 1}}(z)}} & {S_{{lin},0}(z)} & {S_{{lin},1}(z)} & \; & \ldots & {S_{{lin},{M - 2}}(z)} \\ {z^{- 1}{S_{{lin},{M - 2}}(z)}} & {z^{- 1}{S_{{lin},{M - 1}}(z)}} & {S_{{lin},0}(z)} & \; & \ldots & {S_{{lin},{M - 3}}(z)} \\ \vdots & \vdots & \vdots & \; & \ddots & \vdots \\ {z^{- 1}{S_{{lin},1}(z)}} & {z^{- 1}{S_{{lin},2}(z)}} & \ldots & {z^{- 1}{S_{{lin},{M - 1}}(z)}} & \; & {S_{{lin},0}(z)} \end{bmatrix}$

the coefficients of the linear filter being written as:

${{S_{lin}(z)} = {{\sum\limits_{n}{s_{{lin},n}z^{- n}}} = {\sum\limits_{l = 0}^{M - 1}{z^{- 1}{S_{{lin},l}\left( z^{M} \right)}}}}},$

-   -   and S_(alias) (z) is any filtering matrix which represents         components corresponding to aliasing due to signal inversion on         the time and/or frequency axis and creating additional         associated components.

For the estimation of the linear portion S_(lin) (z), a least squares estimation is preferably used, minimizing the power of the term S_(alias) (z). This is in order to observe the primary contribution of linear filtering present in the matrix S_(sb) (z).

This seeks to minimize an expression of the type:

∥S _(alias)(z)∥² =∥S(z)−S _(lin)(z)∥²

The terms of the matrix S_(lin) (z) can be calculated by estimating the mean of the diagonal terms of the matrix S (z), as follows:

${S_{{lin},0}(z)} = {{\frac{1}{M}\left\lbrack {\overset{M - 1}{\sum\limits_{k = 0}}{S_{k,k}(z)}} \right\rbrack}\mspace{14mu} {and}}$ ${S_{{lin},m}(z)} = {\frac{1}{M}\left\lbrack {{\overset{M - 1 - m}{\sum\limits_{k = 0}}{S_{k,{k + m}}(z)}} + {z{\sum\limits_{k = 0}^{m - 1}{S_{{M + k - m},k}(z)}}}} \right\rbrack}$ for  indices  0 < m ≤ M − 1

The corresponding linear filter is estimated by the expression:

${S_{lin}(z)} = {\sum\limits_{l = 0}^{M - 1}{z^{- l}{S_{{lin},l}\left( z^{M} \right)}}}$

The aliasing component, which contains the filters with non-linear components, is calculated by the difference of the two matrices:

S _(alias)(z)=S(z)−S _(lin)(z)

The power of this matrix is deduced from this by summing the square of the coefficients of this matrix, in order to estimate the amount of aliasing created.

To summarize, after an operation is performed in the transformed domain (particularly equalization), the effect of this operation is assessed after inverse transformation:

-   -   with decomposition into two parts:         -   a linear part, representing a linear filter (corresponding             to a conventional filtering function in signal processing);             this filtering has the effect of modifying the spectrum of             the signal by attenuating or amplifying the signal in             certain frequencies, and         -   a non-linear part which contains aliasing components             considered to be undesirable,     -   and a measurement of the power of these undesirable components.

Thus, it is possible by this implementation:

-   -   to measure the distortion introduced by the prior art solutions         when they apply an equalization in the transformed domain,     -   to propose sub-band filtering structures which allow reducing         the measured distortions.

We will now describe example embodiments of the invention which use a measurement of this type.

In one example embodiment, we propose studying the transfer function obtained in the time domain, after multiplication of MDCT components. One example of such multiplication is the application of a multiplication by a scalar T_(k) of each component issuing from the MDCT transformation, as illustrated in FIG. 2. Such processing by multiplying each component T_(k) is called equalization.

An example of a feasible filtering function is the following:

T_(k)=1 for 0≦k<M/4, and T_(k)=0 for M/4≦k<M, which is the same as writing:

${S_{sb}(z)} = \begin{pmatrix} 1 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 1 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 1 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 1 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}$

For the transformation, an MDCT transform of size M=64 is used in this example, with a sinusoidal window (referred to as a “Malvar” window) for the prototype filter, in both the analysis and the synthesis.

After estimating the linear part in the time domain, a linear filter is obtained as represented in FIG. 3. This is a low-pass filter, as shown in FIG. 4.

By estimating the aliasing power as indicated above, a power of −24.69 dB is measured, which can create undesirable audio effects.

Modifying the sub-band filtering matrix is then proposed, configuring it as follows:

${{\hat{S}}_{sb}(z)} = \begin{pmatrix} 1 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 1 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 1 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {1 - a_{0}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{0} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}$

The position of coefficient 1−a₀ (row i, column i) corresponds to that of the last coefficient at “1” in the uncorrected filtering matrix of the conventional low-pass filter, and the position of coefficient a₀ corresponds to row i+1, column i+1.

Advantageously, the evolution in the aliasing distortion is measured while varying the parameter a₀. This distortion is represented (ordinates) as a function of the parameter a₀ (abscissas) in FIG. 5, in which there is a minimum at a₀=0.3379.

The distortion is then lowered to −29.16 dB, which is an improvement of 4.47 dB relative to the current situation (the prior art).

Advantageously, the filter resulting from this modification also has characteristics close to those of the initial desired filter, as illustrated in FIG. 6.

Lastly, an equalization processing is applied with adapted coefficients a₀ and 1−a₀ obtained by determining the aliasing power (distortion variation) as a function of the coefficient a₀.

Thus, by observing the aliasing components created by the sub-band filtering matrix S_(sb), it is apparent that these aliasing components can be reduced by adding anti-aliasing filtering components 1−a₀ and a₀ to this matrix.

In the invention, this approach can be further extended by attempting a correction of the aliasing effect in the time domain. Here we are interested not only in the signal to be processed within a given frame for the equalization described above, but are also interested in the signal of the frame preceding and/or following this given frame. Still in this example embodiment of an MDCT transform, a first matrix T₁ to be applied to the preceding frame (in the form of a signal vector) is proposed, and, due to the symmetry of this type of transform, a second matrix T′₁ is proposed which is deduced from the first matrix T₁, to be applied to the following frame. Here, the second matrix T′₁ corresponds in particular to the transpose of the first matrix T₁.

The expression for such general processing is expressed as follows:

Ś_(sb)(z)=T₁z⁻¹+T₀+T′₁z, where T′₁ is the transpose of the matrix T₁, the notations z⁻¹ and z respectively referring to the preceding frame and the following frame.

This looks for the form, in this case for a low-pass filtering with equalization in the transformed domain, that this matrix T₁ can take and that would minimize the aliasing (measured in “aliasing power” as indicated above). Firstly, it looks for a simple expression of the matrix T₁ which only contains non-zero elements in its main diagonal, to limit the complexity of the processing. After estimating the aliasing, it is apparent that this matrix T₁ has zero elements everywhere except at the positions of the coefficients 1−a₀ and a₀ of the matrix T₀. The coefficients of the matrix T₁ occupying these positions are respectively −a₁ and a₁ types. In this case, of course, the transpose matrix T′₁ is identical.

This implementation already advantageously reduces the distortion by several dB compared to the simple equalization based solely on the matrix T₀. A level of distortion lowered to −32.71 dB is obtained, which is an improvement of 8 dB over the prior art situation, with optimized coefficients:

a₀=0.2845 and a₁=0.1311.

A filtering function is therefore performed on the consecutive spectra x_(−1,k), x_(0,k) and x_(1,k) according to the frequency components k, as follows:

y _(0,k) =x _(0,k), if k<i

y _(0,i)=(1−a ₀)x _(0,i) −a ₁ x _(−1,i) −a ₁ x _(+1,i)

y _(0,i+1) =a ₀ x _(0,i+1) +a ₁ x _(−1,i+1) +a ₁ x _(+1,i+1)

and

y _(0,k)=0, if k>i+1

It is understood that a matrix expression of the filtering adjustment is not necessarily used in this simple embodiment.

It is then possible to reduce the distortion further by enriching the form of the matrix T₁ (while increasing the complexity of the calculations, however) and to add other non-zero terms neighboring the coefficients −a₁ and a₁. In the example described below, 14 non-zero coefficients are obtained in the matrix T₁ and its general distortion-minimizing form is then of the type:

$T_{1} = \begin{pmatrix} 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{5} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & a_{3} & 0 & {- a_{4}} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & {- a_{3}} & {- a_{1}} & {- a_{2}} & 0 & a_{5} & \ldots & 0 \\ 0 & \ldots & {- a_{5}} & 0 & a_{2} & a_{1} & a_{3} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & a_{4} & 0 & {- a_{3}} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {- a_{5}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}$

The matrix system for this comprehensive processing is then written:

${{\hat{S}}_{sb}(z)} = {{z^{- 1}\begin{pmatrix} 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{5} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & a_{3} & 0 & {- a_{4}} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & {- a_{3}} & {- a_{1}} & {- a_{2}} & 0 & a_{5} & \ldots & 0 \\ 0 & \ldots & {- a_{5}} & 0 & a_{2} & a_{1} & a_{3} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & a_{4} & 0 & {- a_{3}} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {- a_{5}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}} + \begin{pmatrix} 1 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 1 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 1 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {1 - a_{0}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{0} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix} + {z^{+ 1}\begin{pmatrix} 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & {- a_{5}} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {- a_{3}} & 0 & a_{4} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & a_{3} & {- a_{1}} & a_{2} & 0 & {- a_{5}} & \ldots & 0 \\ 0 & \ldots & a_{5} & 0 & {- a_{2}} & a_{1} & {- a_{3}} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & {- a_{4}} & 0 & a_{3} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & a_{5} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}}}$

In a simplified form, we have:

Ś_(sb)(z)=T₁z⁻¹+T₀+T′₁z, T′₁ being the transpose of the matrix T₁, which corresponds to:

-   -   applying the matrix T₀, corrected for equalization, to a current         frame in the transformed domain,     -   applying the matrix T₁ to a transformed signal, calculated from         the signal using M samples preceding the one used for the matrix         T₀, therefore ultimately in the frame of samples preceding a         current frame which is itself processed by the matrix T₀,     -   and applying the matrix T₁′ to a transformed signal, calculated         from the signal using M samples following the one used for the         matrix T₀, therefore ultimately in the frame of samples which         succeeds the current frame.

It is thus understood that the matrices T₁, T₀ and T₁′ are respectively applied to three successive frames of an MDCT transform.

The task of the matrix T₁ is therefore to reduce the level of aliasing introduced by the matrix T₀ which implements an equalization function.

In the expression of the above matrices, all the elements are therefore zero, aside from:

-   -   a few elements in the main diagonal of matrix T₀ and matrix T₁,         and     -   elements of the first and third upper diagonal of matrix T₁ and         of the first and third lower diagonal of matrix T₁.

Recall that matrix T′₁ is the transpose of matrix T₁.

The filtering matrix, in this example embodiment of the invention, is therefore described perfectly by the following diagonal elements:

-   -   diag(T0,0)     -   diag(T1,0)     -   diag(T1,−1)     -   diag(T1,−3)     -   diag(T1,+1)     -   diag(T1,+3)

Note that the upper and lower diagonals are identical aside from the sign:

diag(T1,−1)=−diag(T1,+1) diag(T1,−3)=−diag(T1,+3)

A more compact form is obtained by writing only the diagonals, as follows:

index diag(T0, 0) diag(T1, 0) Diag(T1, 1) diag(T1, 3) 0 1 0 0 0 . . . . . . . . . . . . . . . M/4 − 2 1 0 0 a₅ M/4 − 1 1 0 a₃ −a₄   M/4 1 − a₀   −a₁   −a₂   a₅ M/4 + 1 a₀ a₁ a₃ 0 M/4 + 2 0 0 0 0 . . . . . . . . . . . . . . . M − 1 0 0 0 0

By minimizing the aliasing error as a function of the free variables a₀ to a₅, an aliasing power corresponding to −45.31 dB is obtained, which is a gain of 20.6 dB relative to the prior art. In this numerical example, a good choice of coefficients is the following:

a₀=0.2548 a₁=0.1249 a₂=0.0812 a₃=0.0409 a₄=0.0192 a₅=0.0132

One will note here that the values of these coefficients a_(i) decrease with the index i, which means that in order to reduce, for example, the number of coefficients a_(i) to be considered (for example to reduce processing complexity), it is sufficient to:

-   -   set coefficient a₅ to 0     -   and, possibly to reduce the complexity further, set coefficient         a₄ to 0,     -   etc.

The coefficients remaining non-zero, a₀, a₁, a₂, etc., are optionally adjusted to reduce distortion.

A set of coefficients a₀, . . . , a_(i) can thus be calculated for each value of i from 1 to n (with a maximum of n=5 for example), so as to choose a set of coefficients a₀, . . . , a_(i) adapted for a given situation (for example in terms of processing complexity in a terminal or other equipment in a telecommunications network).

It is evident that the resulting linear filter is always very close to the desired function, as is shown in FIG. 7 which illustrates a low-pass filter of very similar characteristics. It is understood in particular that the contents of the diagonal of the matrix T₀ applied to the current frame ultimately set the desired frequency range.

The representation can be “degraded” by increasing the number of zero coefficients, for example by forcing a₅ to zero. In this case, the optimal sub-band filtering solution introduces a level of aliasing of −42.90 dB (instead of −45.31 dB).

An embodiment is represented in FIG. 8 in which, while the prior art recommends the use of 16 “conventional” coefficients, it proposes adding between 1 and 29 non-zero coefficients (thus with the choice of a set of six basic coefficients a₀, a₁, . . . , a₅) to obtain a reduction in spectral aliasing power ranging from 4.47 to 20.6 dB. The example of adding 29 non-zero coefficients to matrices T₁, T₀ and T₁′ corresponds to adding:

-   -   the coefficient a₀ to matrix T₀,     -   14 non-zero coefficients, presented above, to matrix T₁, and     -   14 corresponding non-zero coefficients to transpose matrix T′₁.

It is demonstrated below that the case of a low-pass filter can be transposed to any form of filter, for example a band-pass filter.

One embodiment of the invention is described below in a context of implementing a band-pass filter. A filter is then used for the equalization, in the form:

T _(k)=0 for 0≦k<M/8

T _(k)=1 for M/8≦k<M/4

T _(k)=0 for M/4≦k<M

The filtering function performed is illustrated in FIG. 9 and the level of aliasing distortion corresponds to −21.68 dB.

Using the same format as the embodiment presented above for a low-pass filter, two matrices are used to lower the level of aliasing introduced by the band-pass function, by applying:

Ś _(sb)(z)=T ₁ z ⁻¹ +T ₀ +T′ ₁ z

Only certain diagonals of matrices T₀ and T₁ are non-zero. Their values are in the form:

index diag(T0, 0) diag(T1, 0) Diag(T1, 1) diag(T1, 3) 0 0 0 0 0 . . . . . . . . . . . . . . . M/8 − 3 0 0 0 0 M/8 − 2 0 0 0 −a₅ M/8 − 1 0 0 −a₃   a₄ M/8 a₀   a₁   a₂ −a₅ M/8 + 1 1 − a₀ −a₁ −a₃ 0 M/8 + 2 1 0 0 0 . . . . . . . . . . . . . . . M/4 − 2 1 0 0 a₅ M/4 − 1 1 0 a₃ −a₄   M/4 1 − a₀ −a₁ −a₂   a₅ M/4 + 1 a₀   a₁ a₃ 0 M/4 + 2 0 0 0 0 . . . . . . . . . . . . . . . M − 1 0 0 0 0

The anti-aliasing functions of the low-pass structure are therefore replicated in this new embodiment.

By looking for the best values for the coefficients a_(n), the amount of aliasing is significantly reduced.

By retaining the values obtained in the embodiment involving a low-pass filter, the level of aliasing is reduced to −42.59 dB which is an improvement of 20.91 dB in comparison to the filtering function presented above (which presents a distortion of −21.68 dB).

An embodiment applied to complex-valued filter banks is now presented.

One example embodiment concerns MCLT (for Modulated Complex Lapped Transform) transforms, described for example in:

-   -   H. Malvar, “A Modulated Complex Lapped Transform And Its         Applications to Audio Processing”. Proc. International         Conference on Acoustics, Speech and Signal Processing, 1999.

With reference to FIG. 10, an MCLT transform consists of two components:

-   -   a component corresponding to the MDCT transform of the signal,         identical to the above embodiments, and     -   a component corresponding to an MDST (for Modified Discrete Sine         Transform) transform of the signal: the cosine terms of the MDCT         transform are replaced with sine terms in order to obtain its         expression.

A cosine portion of the analysis is then written as follows (identical to the case set forth above):

E _(c)(z)=C ₀ h _(a,0) +z ⁻¹ C ₁ h _(a,1)

and a second, sine portion as follows:

E _(s)(z)=S ₀ h _(a,0) +z ⁻¹ S ₁ h _(a,1)

The inverse transformations are written in a similar manner:

R _(c)(z)=h _(s,0) C′ ₁ +z ⁻¹ h _(s,1) C′ ₀ et R _(s)(z)=h _(s,0) S′ ₁ +z ⁻¹ h _(s,1) S′ ₀

The matrices S_(i) contain the sine terms:

${s_{k,n} = {\sin \left( {\frac{\pi}{M}\left( {n + \frac{1 + M}{2}} \right)\left( {k + \frac{1}{2}} \right)} \right)}},{0 \leq n < {2M}},{0 \leq k < M}$

The MCLT transform therefore involves carrying out two direct transforms:

-   -   one MDCT transform,     -   and the other an MDST transform,         then performing two corresponding inverse transformations, of         which the result is summed (with a gain).

The effect of a sub-band processing can ultimately be expressed as:

${S(z)} = {\frac{1}{2}\left( {{{R_{c}(z)}{S_{b}(z)}{E_{c}(z)}} + {{R_{s}(z)}{S_{b}(z)}{E_{s}(z)}}} \right)}$

and the type of processing presented in the above example embodiments is applied:

-   -   in order to provide parameters for the processing in sub-bands         S_(sb)     -   and in order to estimate the linear convolution component and         the amount of aliasing introduced.

Thus it is possible simply to apply the results presented in the above examples for the case of the MDCT transform. The matrix S_(sb) configured as above is used, and the distortion characteristic as a function of the number of coefficients can be deduced in the same manner.

It should be noted that in the case of the MCLT transform, the filtering matrix S_(sb) has the same number of coefficients as for the MDCT transform. However, due to a double application to both the cosine part and the sine part, the total number of coefficients to be applied is doubled, as illustrated in FIG. 11 (for a low-pass filter) and FIG. 12 (for a band-pass filter), which compare the number of coefficients allowing a reduction of the aliasing effect for an MDCT transform (solid line) and for an MCLT transform (dotted lines).

An implementation for any filtering is now described. The filtering functions presented in the above embodiments can be combined. For example, the case presented above for a band-pass filter can be combined with that of a low-pass filter (without restriction). For example, the form of the resulting filter can be as follows:

-   -   low-pass filter for k from 0 to M/8,     -   and band-pass filter for k from M/8 to M/4.

This simply accumulates the contributions from the two filters. The two tables corresponding to the band-pass and low-pass contributions are presented side by side below.

Band-pass Low-pass index diag(T0,0) diag(T1,0) diag(T1,1) Diag(T1,3) Diag(T0,0) diag(T1,0) diag(T1,1) diag(T1,3) 0 0 0 0 0 1 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M/8 − 3 0 0 0 0 1 0 0 0 M/8 − 2 0 0 0 −a₅ 1 0 0 a₅ M/8 − 1 0 0 −a₃ a₄ 1 0 a₃ −a₄ M/8 a₀ a₁ a₂ −a₅ 1 − a₀ −a₁ −a₂ a₅ M/8 + 1 1 − a₀ −a₁ −a₃ 0 a₀ a₁ a₃ 0 M/8 + 2 1 0 0 0 0 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M/4 − 2 1 0 0 a₅ 0 0 0 0 M/4 − 1 1 0 a₃ −a₄ 0 0 0 0 M/4 1 − a₀ −a₁ −a₂ a₅ 0 0 0 0 M/4 + 1 a₀ a₁ a₃ 0 0 0 0 0 M/4 + 2 0 0 0 0 0 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M − 1 0 0 0 0 0 0 0 0

The different matrices are then added linearly and the result of the combination yields:

index diag(T0, 0) Diag(T1, 0) Diag(T1, 1) diag(T1, 3) 0 1 0 0 0 . . . . . . . . . . . . . . . M/8 − 3 1 0 0 0 M/8 − 2 1 0 0 0 M/8 − 1 1 0 0 0 M/8 1 0 0 0 M/8 + 1 1 0 0 0 M/8 + 2 1 0 0 0 . . . . . . . . . . . . . . . M/4 − 2 1 0 0 a₅ M/4 − 1 1 0 a₃ −a₄   M/4 1 − a₀ −a₁ −a₂   a₅ M/4 + 1 a₀   a₁ a₃ 0 M/4 + 2 0 0 0 0 . . . . . . . . . . . . . . . M − 1 0 0 0 0

The general structure of a low-pass filter is indeed obtained. One will observe the values at zero when the two combined filters are joined, which indicates that aliasing compensation is no longer necessary here, as expected, and the passband has M/4 coefficients.

It is also possible to weight the above two filters to achieve a more complex filtering function.

For example, a filtering function can be implemented:

-   -   applying a factor g=10 to the frequencies below M/8,     -   keeping the frequencies between M/8 and M/4 at their initial         value,     -   and cutting off any frequency above M/4.

In this example embodiment, the elements of the following two matrices are considered:

Band-pass (weight × 1) Low-pass (weight × 10) index diag(T0,0) diag(T1,0) diag(T1,1) Diag(T1,3) Diag(T0,0) diag(T1,0) diag(T1,1) diag(T1,3) 0 0 0 0 0 1 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M/8 − 3 0 0 0 0 1 0 0 0 M/8 − 2 0 0 0 −a₅ 1 0 0 a₅ M/8 − 1 0 0 −a₃ a₄ 1 0 a₃ −a₄ M/8 a₀ a₁ a₂ −a₅ 1−a₀ −a₁ −a₂ a₅ M/8 + 1 1 − a₀ −a₁ −a₃ 0 a₀ a₁ a₃ 0 M/8 + 2 1 0 0 0 0 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M/4 − 2 1 0 0 a₅ 0 0 0 0 M/4 − 1 1 0 a₃ −a₄ 0 0 0 0 M/4 1 − a₀ −a₁ −a₂ a₅ 0 0 0 0 M/4 + 1 a₀ a₁ a₃ 0 0 0 0 0 M/4 + 2 0 0 0 0 0 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M − 1 0 0 0 0 0 0 0 0

Applying the above weights results in the following new matrices:

Band-pass (weight × 1) Low-pass (weight × 10) index diag(T0,0) diag(T1,0) diag(T1,1) diag(T1,3) Diag(T0,0) diag(T1,0) diag(T1,1) diag(T1,3) 0 0 0 0 0 G 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . M/8 − 3 0 0 0 0 G 0 0 0 M/8 − 2 0 0 0 −a₅ G 0 0 (g − 1).a₅ M/8 − 1 0 0 −a₃ a₄ G 0 (g − 1).a₃ −(g − 1).a₄ M/8 a₀ a₁ a₂ −a₅ g.(1 − a₀) + a₀ −(g − 1).a₁ −(g − 1).a₂ (g − 1).a₅ M/8 + 1 1 − a₀ −a₁ −a₃ 0 (1 − a₀) + g.a₀ (g − 1).a₁ (g − 1).a₃ 0 M/8 + 2 1 0 0 0 1 0 0 0 .. . . . . . . . . . . . . . . . . . . . . . . . . M/4 − 2 1 0 0 a₅ 1 0 0 a₅ M/4 − 1 1 0 a₃ −a₄ 1 0 a₃ −a₄ M/4 1 − a₀ −a₁ −a₂ a₅ 1 − a₀ −a₁ −a₂ a₅ M/4 + 1 a₀ a₁ a₃ 0 a₀ a₁ a₃ 0 M/4 + 2 0 0 0 0 0 0 0 0 .. . . . . . . . . . . . . . . . . . . . . . . . . M − 1 0 0 0 0 0 0 0 0

The two matrices can be summed as in the embodiment presented above. Thus any kind of equalization range can be reproduced by combining basic weighted band-pass functions (and/or low-pass functions), by summing them.

Thus, in general terms, starting from a desired filtering function expressed as a series of gains to be applied to each band of a transform, one reflects these gains in the main diagonal of matrix T₀. These gains can be adjusted in order to limit discontinuities from one band to another (typically the values of the a₀ coefficients).

For each difference in gains between two bands, the respective gains are weighted by aliasing reduction ranges defining a modification to matrices T₁ and T′₁ in order to weight the preceding and following frames in the transformed domain.

Then the filtering is applied.

Thus, for each signal frame in the MDCT transformed domain, three consecutive frames (represented in vector form) are respectively multiplied by the filtering matrices:

-   -   T₁, for the frame preceding the current frame to be filtered,     -   T₀, for the current frame to be filtered, and     -   T′₁, for the frame following the current frame,         and the contributions of the results are summed

This obtains a spectrum in the MDCT transformed domain, and an MDCT inverse transformation is applied in order to obtain a time signal having the desired filtering characteristics.

This approach extends to a complex-valued transform (for example MCLT) and more generally to any modulated and possibly complex-valued transform.

FIG. 13 summarizes the main steps of an example embodiment of a method according to the invention.

In a first step 10, for a given filtering, for example band-pass (low-pass or high-pass being considered as special cases of band-pass), all the sets of coefficients are determined:

-   -   a₀, a₁,     -   a₀, a₁, a₂,     -   a₀, a₁, a₂, a₃,     -   . . . ,     -   a₀, a₁, a₂, a₃, . . . , a_(n), for example where n=5,         which allow constructing the matrices T₀, T₁, T′₁ that minimize         distortion due to aliasing.

This step 10 can be performed beforehand, “off-line”.

Next, for a current “on-line” step 11, which for example must comply with a complexity criterion, a set of coefficients a₀, a₁, . . . , a_(i) are chosen where i is less than or equal to n, such that the index i fulfills a compromise between filtering complexity/quality, determined for example as a function of the computational power of one terminal or another, or by determining a quality level according to the quality of the audio encoding. In effect, an encoded audio signal is inevitably distorted: it is therefore unnecessary to reduce the aliasing to values significantly below the noise level generated by the encoding. The value of the index i can therefore be determined in this step 11 as a function of these conditions, and in the next step 12, the set of coefficients a₀, a₁, . . . , a_(i) corresponding to the value chosen for the index i is fetched for example from memory.

For a given filtering F (step 24), all the component filterings (F¹, F², . . . , F^(k)) of this given filtering are determined, for example a low-pass F¹ (step 13), a high-pass F² (therefore forming a band-pass, by subtraction, with the component filtering F¹), a complex filtering F^(k) (step 20), or other. In particular, the general filtering F can result from a linear combination of the component filterings:

F=λF ¹+ . . . +λ_(k) F ^(k)

A weighting term λ_(k) is thus applied to the matrices T₀ ^(k), T₁ ^(k), T′₁ ^(k) corresponding to each component filtering F^(k) (steps 14 to 20), and the weighted matrices are summed one by one to obtain the matrices T₀, T₁, T′₁ ultimately corresponding to the general filtering F (steps 21 to 23) and respectively applied to the vectors representing a given frame TR_(j), a preceding frame TR_(j−1), and a following frame TR_(j+1). As indicated above, the matrix T′₁ can also be deduced from the matrix T₁ by transposition.

The present invention also concerns a computer program comprising instructions for implementing the method of the invention when this program is executed by a processor. One can see that FIG. 13 can correspond to a flowchart of the general algorithm of such a program.

The present invention also relates to a device for carrying out the method and therefore comprising means for filtering in a transformed domain of sub-bands. In particular, these means apply:

-   -   equalization processing to a current block in the transformed         domain, and     -   filtering-adjustment processing, in the transformed domain, to         at least one block adjacent to the current block.

An example embodiment of such a device is represented in FIG. 14, with, in the example represented:

-   -   an input for receiving a signal S to be processed in the domain         of sub-bands,     -   a second optional input for receiving conditions for determining         said index i, in order to choose a set of coefficients a₀, a₁, .         . . , a_(i) adapted for a compromise between filtering         complexity/quality,     -   signal processing means such as, for example, a processor PROC         and a working memory MEM,     -   and an output providing the filtered signal S′.

The present invention is not limited to the example embodiments described above; it extends to other variants.

For example, embodiments were presented with three consecutive spectra issuing from the processing of successive frames by matrices T₁, T₀, T′₁. However, the number of frames to be processed can be larger when wanting to implement filters with a longer finite impulse response.

In addition, in a filtering method using a prototype analysis filter that is different from a prototype synthesis filter (forms of filtering referred to as “analysis and synthesis windows”), the filtering-adjustment processing by equalization can be applied to a number of frames preceding the current frame that is different from the number of frames following the current frame. For example, it is possible to process only one frame adjacent to the current frame (preceding or following). In this case an asymmetrical linear filter is obtained.

Processing matrices (in particular matrices T₁ and T′₁) adapted for MDCT transforms have been described, particularly the position of the non-zero matrix elements. However, these forms of matrices can have variants for other types of transforms. For example, the matrix T′₁ can be in a form that is not the transpose of the matrix T₁ for a different type of transform than the MDCT transform with Malvar filters as implemented here. 

1. A method for processing a signal in the form of consecutive blocks of samples, the method comprising filtering in a transformed domain of sub-bands, comprising: equalization processing applied to a current block in the transformed domain, and filtering-adjustment processing applied in the transformed domain to at least one block adjacent to the current block.
 2. The method according to claim 1, wherein the filtering-adjustment processing is carried out by a matrix applied to said at least one block adjacent to the current block, said matrix comprising upper and lower diagonals that are identical aside from the sign.
 3. The method according to claim 1, comprising a prior step of optimizing the equalization and filtering-adjustment parameters, by estimating the aliasing resulting from the equalization.
 4. The method according to claim 3, wherein the aliasing is estimated in a domain obtained from an inverse transform of the domain of sub-bands.
 5. The method according to claim 1, wherein the equalization and filtering adjustment in the transformed domain comprise: equalization processing applied to a current block, filtering-adjustment processing applied to at least one block temporally preceding the current block, and filtering-adjustment processing applied to at least one block temporally following the current block.
 6. The method according to claim 5, wherein the current, previous, and following blocks are represented by signal vectors, and wherein the equalization and filtering adjustment including the application of a matrix system comprises: a first matrix applied to the signal vector of the current block, a second matrix applied to the signal vector of the preceding block, and a third matrix applied to the signal vector of the following block.
 7. The method according to claim 6, wherein the third matrix is the transpose of the second matrix.
 8. The method according to claim 1, wherein, prior to the equalization and filtering adjustment, said blocks are transformed in the domain of the sub-bands by at least one modulated transform.
 9. The method according to claim 8, wherein the modulated transform is an MDCT transform.
 10. The method according to claim 8, wherein the transform is a complex-valued modulated transform.
 11. The method according to claim 1, wherein the current and adjacent blocks are represented by signal vectors, and wherein the equalization and filtering adjustment including the application of a matrix system comprises at least: a first matrix applied to the signal vector of the current block, and a second matrix applied to the signal vector of the adjacent block and: the first matrix applied to the signal vector of the current block comprises as the only non-zero elements a succession of identical elements A, in the diagonal of the matrix, followed by an element A-B for a given sub-band and an element B for the sub-band which follows the given sub-band, and the second matrix applied to the signal vector of the adjacent block comprises as the only non-zero elements at least two elements of identical absolute value and of opposite signs, arranged in the diagonal of the matrix, respectively for the given sub-band and for the sub-band which follows the given sub-band.
 12. The method according to claim 11, wherein the filtering comprises a cutoff component for beyond a sub-band corresponding to said given sub-band.
 13. The method according to claim 6, wherein it comprises a prior step of optimizing the equalization and filtering-adjustment parameters, by estimating the aliasing resulting from the equalization, and wherein the second and third matrices comprise a number of non-zero elements which is a function of the chosen degree of optimization of the filtering-adjustment parameters, minimizing the estimated aliasing.
 14. The method according to claim 11, wherein, for a lowpass filtering, the first matrix is expressed in the form: ${T_{0} = \begin{pmatrix} 1 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 1 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 1 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {1 - a_{0}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{0} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}},$ the coefficient 1−a₀ being applied for the given sub-band, wherein the second matrix is expressed in the form: ${T_{1} = \begin{pmatrix} 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & a_{5} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & a_{3} & 0 & {- a_{4}} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & {- a_{3}} & {- a_{1}} & {- a_{2}} & 0 & a_{5} & \ldots & 0 \\ 0 & \ldots & {- a_{5}} & 0 & a_{2} & a_{1} & a_{3} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & a_{4} & 0 & {- a_{3}} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {- a_{5}} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}},$ the coefficient −a₁ of the diagonal being applied for the given sub-band, and wherein the third matrix is expressed in the form: $T_{1}^{\prime} = \begin{pmatrix} 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & {- a_{5}} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & {- a_{3}} & 0 & a_{4} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & a_{3} & {- a_{1}} & a_{2} & 0 & {- a_{5}} & \ldots & 0 \\ 0 & \ldots & a_{5} & 0 & {- a_{2}} & a_{1} & {- a_{3}} & 0 & \ldots & 0 \\ 0 & \ldots & 0 & {- a_{4}} & 0 & a_{3} & 0 & 0 & \ldots & 0 \\ 0 & \ldots & 0 & 0 & a_{5} & 0 & 0 & 0 & \ldots & 0 \\ 0 & \ddots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & 0 \\ 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}$ the coefficient −a₁ of the diagonal being applied for the given sub-band, the coefficients a₀, a₁, a₂, a₃, a₄ and a₅ being positive real numbers, with at least the real number a₁ being non-zero.
 15. The method according to claim 14, wherein the coefficients a₀, a₁, a₂, a₃, a₄ and a₅ are such that: a₀=0.2548 a₁=0.1249 a₂=0.0812 a₃=0.0409 a₄=0.0192 a₅=0.0132
 16. The method according to claim 11, wherein, as the filtering comprises a linear combination of multiple filterings, the matrix system comprises at least: a corresponding linear combination of first matrices, applied to the signal vector of the current block, a linear combination of second matrices, applied to the signal vector of the preceding block, and a linear combination of third matrices, respective transposes of second matrices, applied to the signal vector of the following block.
 17. A non-transitory computer-readable medium, storing a computer program comprising instructions for implementing the method according to claim 1 when this program is executed by a processor.
 18. A device for processing a signal in the form of consecutive blocks of samples, comprising means for filtering in a transformed domain of sub-bands, wherein said means additionally apply: equalization processing to a current block in the transformed domain, and filtering-adjustment processing, in the transformed domain, to at least one block adjacent to the current block. 